カード読取り・通信装置




  1. システム全体:


  バーコードカードから読み取り、数値入力をして そのシリアルデータを 27MHzAM無線器で送信し、受信器でさらにPCへデータを送ってファイルとするシステムを実験した。


 



  2. カード読取り部 と 子機:


  バーコード読み取り部は、センサに RPR220 (赤外線フォトセンサ)を用いたので、これで読み取るためには バーコードの幅が、細線で2〜3mm、太線で 5〜6mmにもなった。(読み取り機とカードは、ダンボールに白い紙を貼って作成(!)) 写真のカード1はほぼ90%OK、線幅の狭いカード2は読み取りにくい。 ・・・ 実際のところ、レンズで焦点を絞ったレーザーセンサ等で行なうのが普通だそうです

  データを集める子機は、スイッチが多いので マイコン(PIC18F2550、28ピン)のピンが足りなくなり、RA4、5 をデジタルにする(ADCON1=0x0F)ほか、USBピン(15、16)もデジタル(入力専用のRC4、5)に変更した。(UCONbits.USBEN = 0 だけではだめで、UCFGbits.UTRDIS = 1 も設定)

  大きな while(1)ループの中で、@ カード読み取り、データ処理、記録、 A チェック、 B 送信、のモードを切り替えるようにした。

  @の カード読み取りでは、バーコードが来ている黒(暗)で H、来ていない白(明)で L となるようにサンプリングし、カードの移動速度によらないでデータを読み取るために、最初の3本の細線の幅の平均で、後の線幅を割った値で比較して 0(細線)、1(太線)に振り分けた。
  顧客の照合は、とりあえず2つのパターンで行なったが、種類が多くなればEEPROM等にあらかじめ記録したデータを読み出して行なう方がよいと思われる。

  置数は、10進-BCDエンコーダー(TTL ICの 74HC147)からの1〜9の数と 0を負論理で受け、EEPROM(24LC256)への書込み、読出しは、I2C の読み書きマクロで行なった。

  送信は、バッファを USARTで送信(putsUSART(buf))のみを行なった。 ボーレートは 4800(bps)。(BRGHがLOWのとき X=(FOSC(=48Mc:USBと同じ)/4800/64)−1=155、 9600bpsの場合は X=77) とりあえず有線で行なった。




 


 

 

 




  3. 親機:


  親機は、SDカードが3.3Vであることと、USB−MSDクラスがフラッシュメモリの容量を必要とすることから 3.3V系で容量の大きい PIC24FJ64GB002を用いた。これは、いわゆる「データ収集装置」であり、SDカードへのログ機能と、USB−MSDクラスの通信を、V−BUS を断続するSWで切り替えるようにした。V-BUSがONのときは、パソコンが自分のリムーバブルディスクと認識して 自動的に画面にファイルが現れる。ファイル(CSV)のコピー/保存や消去もここで行なう。 電源は常にUSB(5V)から取る。

  UARTは受信のみで、受信割り込み関数では、1バイトずつ受信したデータに 0x0A(エンター)が来た時点で 1つのセンテンスとして区切り、センテンスごとにバッファにコピーし、SDカードへロギングを行なう。 USART通信速度は、送信側の子機に合わせて 4800bpsとした。(U1BRG = 207、 9600bpsのときは103)


    


  



  4. 27MHz送・受信器の接続:


  送・受信器には、HF帯の27MHzAM・パルス変調の無線送・受信ユニットをそれぞれ用いた。(参照: 27MHzAMラジコン
  子機と親機を有線で通信する場合は以上の通りで問題なかったが、無線の場合は 送信した最初の1バイトが文字化けする問題が出た。(送信器の過渡現象による物理的な原因と思われる。) そこで、最初の1センテンスをダミーとして送り、それに続いてデータを送るようにした。ダミーにはブランクの列を入れ、読む方に問題が無いようにした。









   ● ソース(子機・無線仕様)
   ● ソース(親機)、 HardwareProfile.h ・・・(プロジェクト構成、プロジェクトファイル、パスの設定は GPSデータロガ2.(1) 参照):
      hex ファイル  (バージョンの違いによって動かない場合用いてください)  ・・・  USBにつなげてもパソコンが反応しない場合は、main の if((USBDeviceState >= CONFIGURED_STATE)&&(USBSuspendControl!=1)){ MSDTasks(); の後に、 delay_us(300); を入れると動きます。




   ● 子機の カード読み取り部は、ループが長くサンプリング時間が延びるので、別の独立したマイコンで行なったほうが良いと思われる。この場合、読取りOK(状態)と子機からのクリヤ(パルス)の2本のラインを設ける。(* 動作点が1個しかないマイコンの欠点)





    § 無線による 「言葉」の通信:


  アフリカや中東の一部では ”電線”がありません。 それは 電線を張っても、人々がその銅を取って売ってしまうからです。そのため政府もあえて電線を張ろうとはしません。 現在のインターネットの時代に、インターネットが使えない国々があります。(携帯電話は使えます)
  そのような国でのデジタル通信は、”RTTY”と呼ばれる 短波帯の低速通信がもっぱら使用されます。 したがって、公的機関の通信や、商業、ベーシックインカムの情報などは、アマチュア無線がよく使うHF帯の電波による文字通信が必須となります。


  さて、神様は「言葉の神」です。 神様が語られた「言葉」が すべてのことを成し遂げます。(イザヤ55:11) 神様は天地創造の時、「光(=電磁波)」をまず第一に造られ、それから 「空間」を広げられました。(創世記1:3−8)
  救われ、神の子供とされた私たちは、「言葉」によって神様とコミュニケーションを持つことができます。そして、空間的な距離によらずに通信することができます。 イエス様は、天におられると同時に、私たちのただ中におられるという不思議な方です。




               戻る                トップへ戻る